Subject: Comments on last draft of DLSw

From: [email-masked] (Isabelle Leonardi)
Date: Wed, 1 Mar 95 09:48:14 +0100

I've just been reading the last version of Data Link Switching 
(January 95) and I've got some questions and comments.

1 - page 24 : 5.2.1. DISCONNECTED State
  In the case of reception of broadcast DLC_XID, the action is to send
  CANUREACH_ex. What will happen when ICANREACH_ex arrives? Do we have to
  send XIDFRAME to the partner then or was this DLC_XID used just to reach
  the topology table?

2 - page 24 : 5.2.1. DISCONNECTED State
  In the case of reception of DLC_CONTACTED, don't we have to start 
  CS_TIMER as well as for reception of non broadcast DLC_XID?

3 - page 25 : 5.2.2. RESOLVE_PENDING State
  Perhaps XPORT_FAILURE must not be ignored! In this case, a suggestion 
  would be to send DLC_HALT_DL and then to change for HALT_PENDING_NOACK
  state.

4 - page 26 : 5.2.3. CIRCUIT_START State
  In the case of reception of ICANREACH_cs, there is a reference to a note
  that doesn't exist anymore.

5 - page 26 : 5.2.3. CIRCUIT_START State
  In the case of reception of CANUREACH_cs for circuit in opposite 
  direction, we may add a DLC_HALT_DL for the circuit which was in 
  CIRCUIT_START state.

6 - page 26 : 5.2.3. CIRCUIT_START State
  In the case of CS_TIMER_EXP or XPORT_FAILURE, we may send a DLC_HALT_DL
  and change to HALT_PENDING_NOACK state in order to free the circuit.

7 - page 27 : 5.2.4. CIRCUIT_PENDING State
  What happens if REACH_ACK doesn't arrive? Perhaps would it be useful to
  handle a timer in this state like in CIRCUIT_START state.

8 - page 31 : 5.2.8. CONNECTED State
  What does "if non_activation XID3" mean?

9 - page 33 : 5.2.10. DISCONNECT_PENDING State
  What happens if DL_HALTED doesn't arrive?  Perhaps would it be useful to
  handle a timer in this state too.

10 - page 35 : 5.3. NetBIOS Datagrams
  Why a NB_Status_Response must be sent to all remote DLSw in order to a 
  specific partner?

11 - page 37 : 5.4.1.2. SENT_EX State
  What happens if ICANREACH_ex never arrives? Do we have to handle a timer
  in this state or to accept that a DLC_ERROR arrives to free the 
  "circuit"?

12 - page 38 : 5.4.1.3. RECEIVED_EX State
  What happens if DLC_RESOLVED never arrives? Do we have to handle a timer
  in this state or to accept that a DLC_ERROR arrives to free the 
  "circuit"?

13 - page 39 : 5.4.2.2. SENT_EX State
  What happens if NETBIOS_NR_ex never arrives? In this case, the only 
  solution is to handle a timer...
  The same situation may happen in RECEIVED_EX State if the datagram 
  NAME_RECOGNIZED does't arrive as well as in SENT_REC_EX State.

14 - page 39 : 5.4.2.2. SENT_EX State
  Do the words "different local session number" mean "different response 
  correlator"?

15 - page 75 : 8.7.1.6. A frame arrives from sender
  The following sequence is incorrect :
    IF NOT GrantDelayed THEN
      IF GrantedUnits <= CurrentWindow THEN
        IF FCACKOwed THEN
          Protocol Violation
        ELSE
          Repeat Window Operator
        ENDIF
      ENDIF
    ENDIF

  To illustrate the problem, here is the following example (Window = 3):

       Granted Units                               Granted Units
         for Sender                                for Receiver
            0                                           0
            3              <---------FCIND(Rpt)         3
            2              FCACK-------------->         2
            2                       -FCIND(Rpt)         5
            1              DATA-----|--------->         4
            0              DATA-----|--------->         3****
            3              <---------
            2              FCACK-------------->

  **** : at this time GrantedUnits = 3 and is <= CurrentWindow; 
         furthermore, FCACKOwed = TRUE, so according to the algorithm, 
         there is Protocol Violation : not for the Sender.

  The following algorithm which works like in section 8.7.2.8 may be a 
  solution :

    IF NOT GrantDelayed THEN
      IF FCACKOwed THEN
        IF GrantedUnits < CurrentWindow THEN
          Protocol Violation
        ENDIF
      ELSE
        IF GrantedUnits <= CurrentWindow THEN
          Repeat Window Operator
        ENDIF
      ENDIF
    ENDIF

16 - page 78 and 79 : 8.8.3. Example Reset Window Flows
  The last line for the 3 examples seems to be incorrect : for the 
  receiver, the window value is still 2 and the GrantedUnits value is 1.

I hope that these remarks will help for your work. For any response, you
can send your messages to the following Internet address :
   [email-masked]

Thank you very much for your reading,

Isabelle Leonardi.

---

From: [email-masked] (Hugo Euben)
Date: 01 Mar 1995 09:32:26 GMT

I'm on holiday until Monday 6th of March. If urgent, leave me a voice mail at
33/92 966 960.
Have fun...